home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2007 January, February, March & April
/
Chip-Cover-CD-2007-02.iso
/
Pakiet bezpieczenstwa
/
mini Pentoo LiveCD 2006.1
/
mpentoo-2006.1.iso
/
livecd.squashfs
/
usr
/
include
/
pwdb
/
radius.h
< prev
Wrap
C/C++ Source or Header
|
2005-10-13
|
6KB
|
244 lines
/*
*
* RADIUS
* Remote Authentication Dial In User Service
*
*
* Livingston Enterprises, Inc.
* 6920 Koll Center Parkway
* Pleasanton, CA 94566
*
* Copyright 1992-1996 Livingston Enterprises, Inc. All Rights Reserved.
*
* This software source code is provided under license from
* Livingston Enterprises, Inc., the terms and conditions of which
* are set forth in an End User Agreement that is contained in
* both the product packaging, and electronically on the
* Livingston ftp site. This software may only be used in
* conjunction with Livingston (or Livingston authorized)
* products. Livingston makes no warranties to any licensee
* concerning the applicability of the software to licensee's
* specific requirements or the suitability of the software for
* any intended use. Licensee shall not remove, modify or alter
* any copyright and/or other proprietary rights notice and must
* faithfully reproduce all such notices on any copies or
* modifications to this software that it makes.
*
* Livingston Enterprises, Inc. makes no representations about
* the suitability of this software for any purpose. It is
* provided "as is" without express or implied warranty.
*
*/
/*
* @(#)radius.h 1.15 10/30/96
*/
#ifndef RADIUS_H
#define RADIUS_H
#define PASSCHANGE /* comment this out to turn off radpass */
#define AUTH_VECTOR_LEN 16
#define AUTH_PASS_LEN 16
#define AUTH_STRING_LEN 128 /* maximum of 254 */
#ifndef UINT4
typedef unsigned long UINT4;
#endif
typedef struct pw_auth_hdr {
u_char code;
u_char id;
u_short length;
u_char vector[AUTH_VECTOR_LEN];
u_char data[2];
} AUTH_HDR;
#define AUTH_HDR_LEN 20
#define CHAP_VALUE_LENGTH 16
#define PW_AUTH_UDP_PORT 1645
#define PW_ACCT_UDP_PORT 1646
#define PW_TYPE_STRING 0
#define PW_TYPE_INTEGER 1
#define PW_TYPE_IPADDR 2
#define PW_TYPE_DATE 3
#define PW_AUTHENTICATION_REQUEST 1
#define PW_AUTHENTICATION_ACK 2
#define PW_AUTHENTICATION_REJECT 3
#define PW_ACCOUNTING_REQUEST 4
#define PW_ACCOUNTING_RESPONSE 5
#ifdef PASSCHANGE
#define PW_PASSWORD_REQUEST 7
#define PW_PASSWORD_ACK 8
#define PW_PASSWORD_REJECT 9
#endif /* PASSCHANGE */
#define PW_ACCESS_CHALLENGE 11
#define PW_USER_NAME 1
#define PW_PASSWORD 2
#define PW_CHAP_PASSWORD 3
#define PW_CLIENT_ID 4
#define PW_CLIENT_PORT_ID 5
#define PW_USER_SERVICE_TYPE 6
#define PW_FRAMED_PROTOCOL 7
#define PW_FRAMED_ADDRESS 8
#define PW_FRAMED_NETMASK 9
#define PW_FRAMED_ROUTING 10
#define PW_FRAMED_FILTER_ID 11
#define PW_FRAMED_MTU 12
#define PW_FRAMED_COMPRESSION 13
#define PW_LOGIN_HOST 14
#define PW_LOGIN_SERVICE 15
#define PW_LOGIN_TCP_PORT 16
#ifdef PASSCHANGE
#define PW_OLD_PASSWORD 17
#endif
#define PW_PORT_MESSAGE 18
#define PW_DIALBACK_NO 19
#define PW_DIALBACK_NAME 20
#define PW_FRAMED_ROUTE 22
#define PW_FRAMED_IPXNET 23
#define PW_STATE 24
#define PW_TERMINATION 29
#define PW_ACCT_STATUS_TYPE 40
#define PW_ACCT_DELAY_TIME 41
#define PW_ACCT_INPUT_OCTETS 42
#define PW_ACCT_OUTPUT_OCTETS 43
#define PW_ACCT_SESSION_ID 44
#define PW_ACCT_AUTHENTIC 45
#define PW_ACCT_SESSION_TIME 46
/*
* Non-Protocol Attributes
*/
#define PW_EXPIRATION 21
#define PW_AUTHTYPE 1000
#define PW_MENU 1001
#define PW_TERMINATION_MENU 1002
#define PW_PREFIX 1003
#define PW_SUFFIX 1004
/*
* INTEGER TRANSLATIONS
*/
/* USER TYPES */
#define PW_LOGIN_USER 1
#define PW_FRAMED_USER 2
#define PW_DIALBACK_LOGIN_USER 3
#define PW_DIALBACK_FRAMED_USER 4
/* FRAMED PROTOCOLS */
#define PW_PPP 1
#define PW_SLIP 2
/* FRAMED ROUTING VALUES */
#define PW_NONE 0
#define PW_BROADCAST 1
#define PW_LISTEN 2
#define PW_BROADCAST_LISTEN 3
/* FRAMED COMPRESSION TYPES */
#define PW_VAN_JACOBSON_TCP_IP 1
/* LOGIN SERVICES */
#define PW_TELNET 0
#define PW_RLOGIN 1
#define PW_TCP_CLEAR 2
#define PW_PORTMASTER 3
/* AUTHENTICATION LEVEL */
#define PW_AUTH_NONE 0
#define PW_AUTH_RADIUS 1
#define PW_AUTH_LOCAL 2
/* STATUS TYPES */
#define PW_STATUS_START 1
#define PW_STATUS_STOP 2
/* TERMINATION OPTIONS */
#define PW_TERM_DEFAULT 0
#define PW_TERM_RADIUS_REQUEST 1
/* Internal Authentication Types */
#define PW_AUTHTYPE_LOCAL 0
#define PW_AUTHTYPE_UNIX 1
#define PW_AUTHTYPE_SECURID 2
/* Default Database File Names */
#define RADIUS_DIR "/etc/raddb"
#define RADACCT_DIR "/usr/adm/radacct"
#define RADIUS_DICTIONARY "dictionary"
#define RADIUS_CLIENTS "clients"
#define RADIUS_CLIENT_CACHE "clcache"
#define RADIUS_USERS "users"
#define RADIUS_HOLD "holdusers"
#define RADIUS_SRV "server"
/* Server data structures */
typedef struct dict_attr {
char name[32];
int value;
int type;
struct dict_attr *next;
} DICT_ATTR;
typedef struct dict_value {
char attrname[32];
char name[32];
int value;
struct dict_value *next;
} DICT_VALUE;
typedef struct value_pair {
char name[32];
int attribute;
int type;
UINT4 lvalue;
char strvalue[AUTH_STRING_LEN];
struct value_pair *next;
} VALUE_PAIR;
typedef struct auth_req {
UINT4 ipaddr;
u_short udp_port;
u_char id;
u_char code;
u_char vector[16];
u_char secret[16];
VALUE_PAIR *request;
int child_pid; /* Process ID of child */
UINT4 timestamp;
struct auth_req *next; /* Next active request */
} AUTH_REQ;
#define SECONDS_PER_DAY 86400
#define CLEANUP_DELAY 5
#define MAX_REQUESTS 100
#if defined(SECURID)
#define MAX_REQUEST_TIME 120
#else
#define MAX_REQUEST_TIME 30
#endif
#define RADIUS_MSG_KEY(pid) (('r' << 24) + ((pid) & 0x00ffffff))
#endif /* RADIUS_H */